package com.gk.panda.apis.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gk.panda.apis.entity.TransectManager.dto.TransectFileDto;
import com.gk.panda.apis.entity.TransectManager.dto.TransectListDto;
import com.gk.panda.apis.entity.TransectManager.entity.TransectEntity;
import com.gk.panda.apis.entity.TransectManager.vo.TransectDetailsOfAppVo;
import com.gk.panda.apis.entity.TransectManager.vo.TransectFileVo;
import com.gk.panda.apis.entity.TransectManager.vo.TransectListVo;
import com.gk.panda.pojo.TransectManager;

import java.io.UnsupportedEncodingException;
import java.util.List;

/**
 * @ClassName: TransectService
 * @Description: 样线管理
 * @author: Sir.yang
 * @date: 2022/11/9 15:44
 * @version: 1.0
 **/
public interface TransectManagerService extends IService<TransectManager> {

    /**
     * ------------------APP-------------------------------
     **/

    /**
     * @description: APP获取样线列表
     * @param: [fkOrgId]
     * @return: java.util.List<java.lang.String>
     * @date: 2022/11/9 18:08
     * @version: 1.0
     **/
    List<String> getTransectListOfApp(Integer fkOrgId);

    /**
     * @description: APP获取样线的详情
     * @param: [transectId]
     * @return: com.gk.panda.apis.entity.TransectManager.vo.TransectDetailsOfAppVo
     * @date: 2022/11/9 18:08
     * @version: 1.0
     **/
    TransectDetailsOfAppVo getTransectDetailsOfApp(Integer transectId);


    /**
     * ------------------PC-------------------------------
     **/
    /**
     * @description: PC获取样线列表
     * @param: [dto]
     * @return: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.gk.panda.apis.entity.TransectManager.vo.TransectListVo>
     * @date: 2022/11/10 11:16
     * @version: 1.0
     **/
    Page<TransectListVo> getTransectList(TransectListDto dto);

    /**
     * @description: PC新建样线
     * @param: [dto]
     * @return: java.lang.Integer
     * @date: 2022/11/10 11:40
     * @version: 1.0
     **/
    Integer addTransect(TransectEntity transectEntity);

    /**
     * @description: PC查看样线详情
     * @param: [transectId]
     * @return: com.gk.panda.apis.entity.TransectManager.vo.TransectDetailsVo
     * @date: 2022/11/10 11:40
     * @version: 1.0
     **/
    TransectFileVo getTransectDetails(Integer transectId);

    /**
     * @description: PC删除样线
     * @param: [transectId]
     * @return: java.lang.Integer
     * @date: 2022/11/10 11:40
     * @version: 1.0
     **/
    Integer removeTransect(Integer transectId);

    /**
     * @description: 启用禁用样线
     * @param: [transectId]
     * @return: java.lang.Integer
     * @date: 2022/11/10 16:15
     * @version: 1.0
     **/
    Integer enableDisable(Integer transectId) throws UnsupportedEncodingException;

    /**
     * @description: 样线模糊查询
     * @param: transectFileDto
     * @return: 样线集合
     * @date: 2022/11/13 15:17
     * @version: 1.0
     **/
    List<TransectFileVo> getTransectList(TransectFileDto transectFileDto);

    /**
     * @description: 根据机构id统计样线数据
     * @param: [orgId]
     * @return: java.lang.Integer
     * @date: 2022/11/11 15:34
     * @version: 1.0
     *
     * @param orgId*/
    Integer getCountByOrgId(List<Integer> orgId);

    /**
     * 获取机构最后一个自动生成的编号
     * @param fkOrgId
     * @param abbr
     * @return
     */
    String getLastSnByOrgId(Integer fkOrgId, String abbr);
}
